﻿<html>
<head>
<title>JSFlow Event sample</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script type="text/javascript" src="../html/html.js"></script>
<script type="text/javascript" src="jsflow.js"></script>
<script type="text/javascript">

function $(id){return document.getElementById(id);}

function log(msg){$("out").innerHTML+=msg+"<br>";}

with(JSFlow){
	
	// Процесс определяем в виде функции, возвращающей исполняемый экземпляр процесса.
	// При каждом запуске создается новый экземпляр.
	var process = function(){
		return sequence(
			function(){
				var go = new Continuation();
				var delay = 200;
				log("f1: Wait for "+ delay);
				setTimeout(function(){
					go();
				}, delay);
			},
			function(){
				log("f2: Wait for 1000");
				(new Continuation())();
			},
			// Специальный примитив для ожидания
			wait(1000),
			function(){
				var go = new Continuation();
				// Назначаем в качестве обработчика события продолжнение данного потока.
				sendEvent = go;
				$("btSendEvent").disabled = false;
				log("f3: Press Send Event button");
			},
			
			function(){
				$("btSendEvent").disabled = true;
				log("f4. Button pressed!");
			}
		);
	}
}


function sendEvent(){
}

function runProcess(){
	$("out").innerHTML = "";
	$("btSendEvent").disabled = true;
	// Создаем экземпляр процесса, и запускаем его
	process().run();
}

</script>
</head>
<body>
	<h1>JSFlow Event sample</h1>
	<button onclick="runProcess()">Run Process</button><br><br><br>
	<button id="btSendEvent" disabled onclick="sendEvent()">Send Event</button>
	<div id="out">
</body>
</html>